org 7c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $

DispStr:
    mov ax, bootMessage
    mov bp, ax
    mov cx, msgLen
    mov ax, 1301h
    mov bx, 000ch
    mov dl, 0
    int 10h
    ret

bootMessage: db "Hello, OS world!"
msgLen: equ $ - bootMessage

times 510 - ($ - $$) db 0
dw 0xaa55
; 1 计算机一旦上电检查引导扇区，引导扇区结尾是0xaa55
; 2 然后将这512字节当作程序代码夹在到内存0000:7c00
; 3 cs:ip 指向了cpu要执行的指令位置
; ax、bx、cx、dx 寄存器为通用寄存器可以存放两个字节(2 * 8bit)
; cs 为代码段寄存器，一般用于存放代码 代码语句
; ds 为数据段寄存器，一般用于存放数据 程序全局变量
; ss 为栈段寄存器，一般作为栈使用 局部变量
; es 为扩展段寄存器
